package com.baofu.paycore.service.facade.model;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.Date;

/**
 * 支付交易退款、撤销类 DTO
 *
 * @author LZQ
 * @version 1.0.0 createTime: 14-11-20 下午8:20
 * @see PayBaseDTO
 */
@Getter
@Setter
@ToString(callSuper = true)
public class CancelPayDTO extends PayBaseDTO {

    private static final long serialVersionUID = 966466623605844215L;

    /**
     * 原支付单号
     */
    private String origPayNo;

    /**
     * 原请求日期
     */
    @NotNull(message = "原请求日期不能为空")
    private Date origRequestDate;

    /**
     * 原请求订单编号
     */
    @NotBlank(message = "原请求订单号编号不能为空")
    @Length(max = 32,message = "请求订单号不能超过32位")
    private String origRequestOrderNo;

    /**
     * 原请求业务编号
     */
    @NotNull(message = "原请求业务编号不能为空")
    @Length(max = 32,message = "原请求业务编号不能超过32位")
    private String origRequestBizNo;

    /**
     * 原请求系统
     */
    @NotBlank(message = "原请求系统不能为空")
    private String origRequestSystem;

    /**
     * 手续费是否退回(默认不退回)
     *
     * TRUE:退回手续费
     * FALSE:不退手续费
     */
    @Pattern(regexp = "(TRUE)|(FALSE)",message = "手续费是否退回标示有误")
    private String refundFeeFlag;
}
